// 个人中心的逻辑代码
// 问题1: 这个页面能不能随便打开 ?
//   如果没有登录过, 不能打开, 直接跳转回到登录页
// 问题2: 如何确认登录过 ?
//   localStorage 内有 id 和 token 信息
//   证明曾经登录过, 但是不一定在有效期内

// 1. 拿到 lcoalStorage 内的信息
const id = window.localStorage.getItem('id')
const token = window.localStorage.getItem('token')

// 获取元素
const idInp = document.querySelector('.id')
const nickInp = document.querySelector('.nickname')
const ageInp = document.querySelector('.age')
const genderInp = document.querySelector('.gender')
const form = document.querySelector('form')

// 判断
if (!id) window.location.href = '../htmls/login.html'

// 2. 请求当前用户的个人信息
ajax({
  url: 'http://localhost:8888/users/info',
  data: { id },
  headers: { authorization: token },
  dataType: 'json',
  success (res) {
    // 判断, 登录状态过期了
    if (res.code === 401) {
      // 直接跳转回到登录页
      window.location.href = '../htmls/login.html'
      return
    }

    if (res.code === 1) {
      // 拿到用户信息了, 填写到表单上
      idInp.value = res.info.id
      ageInp.value = res.info.age
      genderInp.value = res.info.gender
      nickInp.value = res.info.nickname
    }
  }
})

// 3. 点击按钮确认修改
form.addEventListener('submit', e => {
  e.preventDefault()

  // 采集信息
  const info = { id }
  if (nickInp.value) info.nickname = nickInp.value
  if (ageInp.value) info.age = ageInp.value
  if (genderInp.value) info.gender = genderInp.value

  // 发送请求
  ajax({
    url: 'http://localhost:8888/users/update',
    method: 'POST',
    data: info,
    headers: { authorization: token },
    dataType: 'json',
    success (res) {
      if (res.code === 1) {
        alert('修改用户信息成功')
      }
    }
  })
})
